#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<unistd.h>
#include<string.h>




int main()
{
  close(1);  //把标准输出关掉了
  int fd = open("ceshi.txt",O_CREAT | O_WRONLY | O_APPEND,0666);
  printf("%d\n",fd);
  fflush(stdout);
  close(fd);  //此时我们动用printf是吧数据存放到了用户级的缓冲区，想要把数据拿出来，要不就是强制刷新，要不就是不关闭文件
  return 0;
}











//int main()
//{
//  int fd = open("ceshi.txt",O_RDONLY);  //这个函数的作用就是打开一个文件并且准备读取里面的数据。
//  if(fd < 0) perror("open");
//  const char* arr = "hello\n";
//  char czz[1024];
//  read(fd,czz,strlen(arr));
//  printf("%s",czz);
//  close(fd);
//  return 0;
//}





//int main()
//{
//  int fd = open("test.txt",O_CREAT|O_WRONLY|O_APPEND,0666);   //此时中间的标记为代表着此时我们每次打开文件的时候都直接在文件后面继续写，类似追加重定向操作
//  if(fd < 0) perror("open");
//  const char* arr = "hello world\n";
//  write(fd,arr,strlen(arr)); //此时的arr不需要加1因为，C语言标准才要求我们记得有\0
//  close(fd);
//  return 0;
//}








//int main()
//{
//  int fd = open("test.txt",O_CREAT|O_WRONLY|O_TRUNC,0666);   //此时中间的标记为代表着此时我们每次打开文件的时候都需要清空文件的内容，类似输入重定向操作
//  if(fd < 0) perror("open");
//  const char* arr = "hello world\n";
//  write(fd,arr,strlen(arr)); //此时的arr不需要加1因为，C语言标准才要求我们记得有\0
//  close(fd);
//  return 0;
//}







//int main()
//{
//  int fd = open("test.txt",O_CREAT | O_WRONLY | O_TRUNC,0666);  //此时的fd是代表的文件描述符，具体内容我在笔记上记载了，只要记住它的作用就是在我们进程中通过文件描述符表，然后定位到相关的文件，此时对里面的数据进行写入或者读取
//  close(fd);
//  return 0;
//}

